home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / CRYPT20.ZIP / ENCODE.ASM < prev    next >
Assembly Source File  |  1993-11-07  |  3KB  |  141 lines

  1. ;This file will encode the message from message.dat into the picture file
  2. ;called message.scr.
  3.  
  4. ;Note: Message.dat MUST be < 8000 bytes for the entire message to be 
  5. ;preserved.
  6.  
  7. .model tiny
  8. .radix 16
  9. .code
  10.         org 100
  11. start:
  12.       
  13. LoadMessage:
  14.         mov     ax,3d00
  15.         mov     dx,offset DataFile
  16.         int     21
  17.         jc      Error
  18.         xchg    bx,ax
  19.         mov     dx,offset MessageData
  20.         mov     cx,8000d
  21.         mov     ah,3f
  22.         int     21
  23.         mov     MessageSize,ax
  24.         mov     ah,3e
  25.         int     21
  26.  
  27.  
  28. AddEOF:
  29.         mov     bx,Messagesize
  30.         mov     [MessageData+bx],1a
  31.  
  32.         jmp     EncodeMessage
  33.  
  34. Error:
  35.         mov     dx,offset Error1
  36.         mov     ah,09
  37.         int     21
  38.         mov     ax,4c01
  39.         int     21
  40.  
  41. EncodeMessage:
  42.         mov     si,offset MessageData
  43.         mov     bp,si
  44.         add     bp,messagesize
  45.  
  46.    OpenPict:
  47.         mov     ax,3d02
  48.         mov     dx,offset PictFile
  49.         int     21
  50.         jc      Error
  51.         xchg    bx,ax
  52.         
  53. SkipColorMap:
  54.         mov     ax,4200
  55.         mov     dx,300
  56.         mov     cx,0
  57.         int     21
  58.         
  59.  
  60. ReadPict:
  61.         mov     ax,4201
  62.         xor     cx,cx
  63.         xor     dx,dx
  64.         int     21
  65.         push    ax dx
  66.  
  67.         mov     ah,3f
  68.         mov     cx,200
  69.         mov     dx,offset PictBuffer
  70.         int     21
  71.  
  72. JumpBackToRead:        
  73.         pop     cx dx
  74.         push    ax
  75.         mov     ax,4200
  76.         int     21
  77.  
  78.         call    convertdata
  79.  
  80.         pop     cx
  81.         mov     ah,40
  82.         mov     dx,offset PictBuffer
  83.         int     21
  84.  
  85.         cmp     si,bp
  86.         jae     DoneEncode
  87.         cmp     ax,200
  88.         jb      DoneEncode
  89.  
  90.         jmp     ReadPict
  91.  
  92. DoneEncode:
  93.  
  94.  
  95. ClosePict:        
  96.         mov     ah,3e
  97.         int     21
  98.  
  99. Done:
  100.         mov     ax,4c00
  101.         int     21
  102.  
  103.  
  104. ConvertData:
  105.         mov     di,offset PictBuffer
  106.         mov     cx,40
  107.  
  108. ConvertByte:
  109.         push    cx
  110.         
  111.         lodsb
  112.         mov     cx,8
  113. ConvertBit:        
  114.         xor     ah,ah
  115.         shr     al,1
  116.         rcl     ah,1
  117.  
  118.         and     byte ptr es:[di],0fe
  119.         or      byte ptr es:[di],ah
  120.         inc     di
  121.         loop    ConvertBit
  122.  
  123.         pop     cx
  124.         loop    Convertbyte
  125.         ret
  126.  
  127.  
  128.  
  129.  
  130.  
  131. Error1  db      'Error opening Message files!$'
  132. DataFile        db      'message.dat',0
  133. PictFile        db      'message.scr',0
  134.  
  135. MessageSize     dw      ?
  136. MessageData     db      8000d   dup(?)
  137. PictBuffer      db      200 dup(?)
  138.  
  139. end start
  140.  
  141.